#pragma once
#include "Device.h"

using namespace DirectX;
using namespace DirectX::SimpleMath;
class Scene
{
private:
	CD3DX12_VIEWPORT m_viewport;
	CD3DX12_RECT m_scissorRect;

	Device* m_device;

	std::unique_ptr<GraphicsMemory> m_graphicsMemory;
	std::unique_ptr<DirectX::CommonStates> m_states;

	ComPtr<ID3D12GraphicsCommandList> m_commandList;
	ID3D12CommandQueue* m_commandQueue;
	ComPtr<ID3D12CommandAllocator> m_commandAllocator;

	DirectX::SimpleMath::Matrix m_world;
	DirectX::SimpleMath::Matrix m_view;
	DirectX::SimpleMath::Matrix m_proj;

	using VertexType = DirectX::VertexPositionColor;

	std::unique_ptr<DirectX::BasicEffect> m_effect;
	std::unique_ptr<DirectX::PrimitiveBatch<VertexType>> m_batch;
public:
	HWND m_hwnd;
	Scene(HWND hwnd, int width, int height);
	~Scene() {};
	void Render();
};

